/*
 * 高阶函数
 * 1、若某函数A以函数为参数，则该函数A就是高阶函数
 */
function invoke( fn ){
    if( typeof fn != 'function' ) {
        throw Error( '参数不是函数' );
    }
    console.log( '准备调用' + fn.name + '函数' );
    fn();
}

let show = function(){
    console.log( new Date() );
}

invoke( show ); // 将函数作为参数传递给invoke函数

setTimeout( show , 1000 ); // 第一个参数接受一个函数作参数